package homework.day06;

import java.io.*;

/**
 * 将当前目录下的所有obj文件获取到，并进行
 * 反序列化后输出每个用户的信息(直接输出反序
 * 列化后的User对象即可)
 * @author Xiloer
 *
 */
public class Test02 {
    public static void main(String[] args)  {
        File dir=new File(".");
        File[] subs=dir.listFiles((f)->f.getName().equals(".obj"));
        for(File sub:subs){
            try ( FileInputStream fis=new FileInputStream(sub);
                 ObjectInputStream ois = new ObjectInputStream(fis)) {

                Object obj=ois.readObject();
                if (obj instanceof User){
                    User user=(User) obj;
                    System.out.println(user);
                }
            }catch (Exception e ){
                System.out.println("反序列化对象出错");
                e.printStackTrace();
            }

        }
    }
}

/*
    提示代码:
	需要用到的语句，尝试按照正确顺序将下列代码并放在main方法中完成需求，
	并在注释中标注每句话的作用，
	//获取当前目录
    File dir = new File(".");

    //循环遍历数组
    for(int i=0;i<subs.length;i++){

    }

    //取当前目录下的所有以 .obj 结尾的文件
    File[] subs = dir.listFiles((f)->f.getName().endsWith(".obj"));

    //读取文件
    FileInputStream fis = new FileInputStream(sub);

    //从数组中获取每一个obj文件
    File sub = subs[i];//从数组中获取每一个obj文件

    //在控制台上输出user
    System.out.println(user);

    //进行反序列化操作
    ObjectInputStream ois = new ObjectInputStream(fis);

    //将obj转换为User类型
    User user = (User)obj;

    //从 ObjectInputStream 对象 ois 中读取一个对象
    Object obj = ois.readObject();

    //判断obj是否是User类的实例
    if(obj instanceof User){

    }

 */